-- import("core.project.config")
-- import("core.tool.compiler")

-- 使得项目支持debug 和release两种模式
add_rules("mode.debug", "mode.release")



includes("src/xmake.lua")



-- 还得写pc支持pkg 
-- 使得xmake添加demo选项
-- 使得xmake 添加demo_path选项

option("demo")
    set_default(true)
    set_showmenu(true)
option("demo_path")
    set_showmenu(true)


if has_config("demo") and has_config("demo_path") then --如何添加了demo和demo_path选项
    target("main")
        add_deps("cstructures")--添加两个依赖
        set_kind("binary") -- 这个一个二进制程序
        set_targetdir("bin") --生成的结果在 bin文件夹下
        -- add_cxxflags("clang::-stdlib=libc++")

        on_config(function (target)
            -- print("fewfdsfsdfsdfsdf")
            local program, toolname = target:tool("cxx")
            if toolname=="cl" then
                target:add("cxxflags","/MD /O2 /bigobj ")
                target:add("cxflags","/MD /O2 /bigobj ")
                target:add("cflags","/MD /O2 /bigobj ")
            elseif toolname=="clang_cl" then 
                target:add("cxxflags","/MD /O2 /bigobj ")
                target:add("cxflags","/MD /O2 /bigobj ")
                target:add("cflags","/MD /O2 /bigobj ")
                -- add_cxflags("/MD /O2 /bigobj ")
                print("shi clang-cl")
            end 
            print(toolname)
        end)
        --add_defines("PERFTOOLS_DLL_DECL=")
        add_files("$(demo_path)/*.cpp","$(demo_path)/*.c") --添加源文件 
        add_includedirs("include","$(demo_path)","$(demo_path)/include") --添加头文件目录

        add_links( "cstructures")-- 添加链接库
        -- print("fewfdsfsdfsdfsdf")

       
        add_ldflags("/LTCG")

        -- if is_plat("windows") then 
        --     print("windows")
        --     add_links( "msvcrt")
        -- elseif is_plat("linux") then 
        --     print("linux")
        -- end
        -- add_links("opengl32","kernel32","user32"
        --         ,"gdi32","comdlg32","advapi32","shell32")
        add_linkdirs("temp_libs") --链接库的搜索目录 （即链接库目录)
        
        --add_ldflags("/LTCG /alternatename:malloc=tc_malloc /NODEFAULTLIB:ucrt.lib /FORCE:MULTIPLE")
-- --
--         add_ldflags("/INCLUDE:__tcmalloc",{force=true})
        add_cflags("-O3")
        add_cxflags("-O3 ")

        
        --add_links("libtcmalloc_minimal") 

end

-- target("myinstall")
--     add_rules("my")
-- target("main")
--     add_deps("cstructures","cstruct_iterator")
--     set_kind("binary")
--     set_targetdir("bin")
--     add_files("Demo/*.cpp")
--     add_links("cstructures","cstruct_iterator")
--     add_linkdirs("temp_libs","lib")
--     add_includedirs("include") 
--     on_run(function(target)
--         local file=io.open("src/config.h","w")
--         file:write("libo")
--         file:close()
--     end)
